package com.ruicar.afs.cloud.bizcommon.rules.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruicar.afs.cloud.bizcommon.enums.rules.RuleOperateType;
import com.ruicar.afs.cloud.bizcommon.rules.entity.AfsRuleOperateHis;

/**
 * AfsRuleOperateHisService
 * <p>Description: </p>
 *
 * @author Fzero
 * @version 1.0
 * @date create on 2020-05-16 09:37:57
 * @since 1.0
 */
public interface AfsRuleOperateHisService extends IService<AfsRuleOperateHis> {
    /**
     * Create rule *
     *
     * @param ruleId rule id
     */
    void createRule(Long ruleId);

    /**
     * New version *
     *
     * @param oldRuleId old rule id
     * @param newRuleID new rule id
     */
    void newVersion(Long oldRuleId, Long newRuleID);

    /**
     * Modify rule *
     *
     * @param oldRuleId old rule id
     * @param newRuleID new rule id
     * @param type      type
     */
    void modifyRule(Long oldRuleId, Long newRuleID, RuleOperateType type);

    /**
     * Active rule *
     *
     * @param ruleId rule id
     */
    void activeRule(Long ruleId);

    /**
     * Expired rule *
     *
     * @param ruleId rule id
     */
    void expiredRule(Long ruleId);
}
